<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>9-子组件向父组件传值-携带参数</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style></style>
  </head>
  <body>
    <div id="app">
      <!-- 4：通过属性绑定的方式，让点击子组件，把父组件中的文字变大 -->
      <div :style='{fontSize: fSize + "px"}'>{{fInfo}}</div>
      <!-- 2：在通过子自定义事件，触发父的事件函数时，可以通过$event拿到自定义事件的实参 -->
      <son-ming @set-father-size="okChangSize($event)"></son-ming>
    </div>
    <script>
      Vue.component('sonMing', {
        data: function () {
          return {
            sonInfo: '我是小明',
          };
        },
        // 1:$emit的第二个参数，就是自定义事件处理函数的实参
        template: `<div @click='$emit("set-father-size", 10)'>{{sonInfo}}</div>`,
      });
      var vm = new Vue({
        el: '#app',
        data: {
          fInfo: '大明爸爸',
          fSize: 20,
        },
        methods: {
          // 父组件的事件处理函数的val形参，就是$event拿到的形参10，
          okChangSize: function (val) {
            this.fSize += val;
          },
        },
      });
    </script>
  </body>
</html>
